console.log('!!!!!!!')
const path = require('path')
const WebpackObfuscator = require('webpack-obfuscator');
const CompressionPlugin = require('compression-webpack-plugin');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

module.exports = {
	// 部署应用时的基本url
	// publicPath:"/pc/", //静态资源路径（默认/，打包后会白屏）
	// 打包构建应用的文件夹
	// outputDir: "distaa", // 输出文件目录
	// 打包时存放静态资源的文件夹，js/img/css
	// assetsDir: "static", //静态资源文件名称
	// lintOnSave: false, //是否开启eslint
	// productionSourceMap: false, //去除打包后js的map文件
	// 指定生成的index文件
	// indexPath: "index.html",
	productionSourceMap: false, //关闭打包map 调试
	configureWebpack: config => {
		if (process.env.NODE_ENV === 'production') {
			// console.log('config', config)
			// 启用Terser插件进行代码压缩
			config.optimization.minimizer[0].options.terserOptions.compress = {
				drop_console: true, // 移除所有的console.log语句
			};
			config.plugins.push(
				new WebpackObfuscator({
					compact: true,
					rotateUnicodeArray: true, // 打乱Unicode数组顺序
					controlFlowFlattening: false,
					deadCodeInjection: false,
					ignoreImports: true, // 这里设置为true
					stringArrayThreshold: 0.1,
				})
			);
			config.plugins.push(
				new CompressionPlugin({
					algorithm: "gzip", //表示使用gzip算法进行压缩
					test: /\.(js|css|html)?$/i, //正则匹配文件名
					threshold: 10240, //文件大小阀值，大于或者等于10240字节(10kb)
					minRatio: 0.5, //最小压缩比例，只有压缩后大小与原始大小的比例大于等于该值时，才会保留压缩后的文件。这里设置为 0.8，表示压缩后的文件大小至少为原始文件大小的 80%。
					deleteOriginalAssets: false, //保留原始文件
				})
			);

			// config.plugins.push(
			// 	new BundleAnalyzerPlugin(),
			// );
			// config.externals = {
			// 	'vue': 'Vue',
			// 	'vue-router': 'VueRouter',
			// 	'vuex': 'Vuex',
			// 	"element-ui": "ELEMENT",
			// 	// "math": "mathjs"
			// };
		}
	},
	devServer: {
		proxy: {
			'/devApi': {
				target: 'https://h5.trading28.com/', //正式
				// target: 'http://trading_h5.metatravers3.com/', //测试
				changeOrigin: true,
				pathRewrite: {
					'^/devApi': ''
				},
			},
			'/uploads': {
				target: 'http://trading_h5.metatravers3.com/',
				changeOrigin: true,
				pathRewrite: {
					'^/uploads': 'http://trading_h5.metatravers3.com/uploads'
				},
			},
			'/ossUrl': {
				target: 'https://qbbucket.oss-cn-hongkong.aliyuncs.com',
				changeOrigin: true,
				pathRewrite: {
					'^/ossUrl': ''
				},
			}
		}
	},
	// chainWebpack: (config) => {
	// 	if (process.env.ANALAYZ) {
	// 		config
	// 			.plugin('webpack-bundle-analyzer')
	// 			.use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin);
	// 	}
	// },
}